package com.hrcx.mystery.pojo;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import javax.validation.constraints.NotNull;

import java.io.Serializable;

import java.math.BigDecimal;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;

/**
 * 商品表
 *
 * @TableName eb_store_product
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "商品表", description = "暂无描述")
public class EbStoreProduct implements Serializable {

    private static final long serialVersionUID = 7298692670469214969L;
    /**
     * 商品id
     */
    @NotNull(message = "[商品id]不能为空")
    @ApiModelProperty("商品id")
    private Integer id;
    /**
     * 商户Id(0为总后台管理员创建,不为0的时候是商户后台创建)
     */
    @NotNull(message = "[商户Id(0为总后台管理员创建,不为0的时候是商户后台创建)]不能为空")
    @ApiModelProperty("商户Id(0为总后台管理员创建,不为0的时候是商户后台创建)")
    private Integer merId;
    /**
     * 商品图片
     */
    @NotBlank(message = "[商品图片]不能为空")
    @Size(max = 256, message = "编码长度不能超过256")
    @ApiModelProperty("商品图片")
    @Length(max = 256, message = "编码长度不能超过256")
    private String image;
    /**
     * 轮播图
     */
    @NotBlank(message = "[轮播图]不能为空")
    @Size(max = 2000, message = "编码长度不能超过2000")
    @ApiModelProperty("轮播图")
    @Length(max = 2000, message = "编码长度不能超过2,000")
    private String sliderImage;
    /**
     * 商品名称
     */
    @NotBlank(message = "[商品名称]不能为空")
    @Size(max = 128, message = "编码长度不能超过128")
    @ApiModelProperty("商品名称")
    @Length(max = 128, message = "编码长度不能超过128")
    private String storeName;
    /**
     * 商品简介
     */
    @NotBlank(message = "[商品简介]不能为空")
    @Size(max = 256, message = "编码长度不能超过256")
    @ApiModelProperty("商品简介")
    @Length(max = 256, message = "编码长度不能超过256")
    private String storeInfo;
    /**
     * 关键字
     */
    @NotBlank(message = "[关键字]不能为空")
    @Size(max = 256, message = "编码长度不能超过256")
    @ApiModelProperty("关键字")
    @Length(max = 256, message = "编码长度不能超过256")
    private String keyword;
    /**
     * 商品条码（一维码）
     */
    @NotBlank(message = "[商品条码（一维码）]不能为空")
    @Size(max = 15, message = "编码长度不能超过15")
    @ApiModelProperty("商品条码（一维码）")
    @Length(max = 15, message = "编码长度不能超过15")
    private String barCode;
    /**
     * 分类id
     */
    @NotBlank(message = "[分类id]不能为空")
    @Size(max = 64, message = "编码长度不能超过64")
    @ApiModelProperty("分类id")
    @Length(max = 64, message = "编码长度不能超过64")
    private String cateId;
    /**
     * 商品价格
     */
    @NotNull(message = "[商品价格]不能为空")
    @ApiModelProperty("商品价格")
    private BigDecimal price;
    /**
     * 会员价格
     */
    @NotNull(message = "[会员价格]不能为空")
    @ApiModelProperty("会员价格")
    private BigDecimal vipPrice;
    /**
     * 市场价
     */
    @NotNull(message = "[市场价]不能为空")
    @ApiModelProperty("市场价")
    private BigDecimal otPrice;
    /**
     * 邮费
     */
    @NotNull(message = "[邮费]不能为空")
    @ApiModelProperty("邮费")
    private BigDecimal postage;
    /**
     * 单位名
     */
    @NotBlank(message = "[单位名]不能为空")
    @Size(max = 32, message = "编码长度不能超过32")
    @ApiModelProperty("单位名")
    @Length(max = 32, message = "编码长度不能超过32")
    private String unitName;
    /**
     * 排序
     */
    @NotNull(message = "[排序]不能为空")
    @ApiModelProperty("排序")
    private Short sort;
    /**
     * 销量
     */
    @NotNull(message = "[销量]不能为空")
    @ApiModelProperty("销量")
    private Integer sales;
    /**
     * 库存
     */
    @NotNull(message = "[库存]不能为空")
    @ApiModelProperty("库存")
    private Integer stock;
    /**
     * 状态（0：未上架，1：上架）
     */
    @NotNull(message = "[状态（0：未上架，1：上架）]不能为空")
    @ApiModelProperty("状态（0：未上架，1：上架）")
    private Boolean isShow;
    /**
     * 是否热卖
     */
    @NotNull(message = "[是否热卖]不能为空")
    @ApiModelProperty("是否热卖")
    private Boolean isHot;
    /**
     * 是否优惠
     */
    @NotNull(message = "[是否优惠]不能为空")
    @ApiModelProperty("是否优惠")
    private Boolean isBenefit;
    /**
     * 是否精品
     */
    @NotNull(message = "[是否精品]不能为空")
    @ApiModelProperty("是否精品")
    private Boolean isBest;
    /**
     * 是否新品
     */
    @NotNull(message = "[是否新品]不能为空")
    @ApiModelProperty("是否新品")
    private Boolean isNew;
    /**
     * 添加时间
     */
    @NotNull(message = "[添加时间]不能为空")
    @ApiModelProperty("添加时间")
    private Integer addTime;
    /**
     * 是否包邮
     */
    @NotNull(message = "[是否包邮]不能为空")
    @ApiModelProperty("是否包邮")
    private Boolean isPostage;
    /**
     * 是否删除
     */
    @NotNull(message = "[是否删除]不能为空")
    @ApiModelProperty("是否删除")
    private Boolean isDel;
    /**
     * 商户是否代理 0不可代理1可代理
     */
    @NotNull(message = "[商户是否代理 0不可代理1可代理]不能为空")
    @ApiModelProperty("商户是否代理 0不可代理1可代理")
    private Boolean merUse;
    /**
     * 获得积分
     */
    @ApiModelProperty("获得积分")
    private Integer giveIntegral;
    /**
     * 成本价
     */
    @NotNull(message = "[成本价]不能为空")
    @ApiModelProperty("成本价")
    private BigDecimal cost;
    /**
     * 秒杀状态 0 未开启 1已开启
     */
    @NotNull(message = "[秒杀状态 0 未开启 1已开启]不能为空")
    @ApiModelProperty("秒杀状态 0 未开启 1已开启")
    private Boolean isSeckill;
    /**
     * 砍价状态 0未开启 1开启
     */
    @ApiModelProperty("砍价状态 0未开启 1开启")
    private Boolean isBargain;
    /**
     * 是否优品推荐
     */
    @NotNull(message = "[是否优品推荐]不能为空")
    @ApiModelProperty("是否优品推荐")
    private Boolean isGood;
    /**
     * 是否单独分佣
     */
    @NotNull(message = "[是否单独分佣]不能为空")
    @ApiModelProperty("是否单独分佣")
    private Boolean isSub;
    /**
     * 虚拟销量
     */
    @ApiModelProperty("虚拟销量")
    private Integer ficti;
    /**
     * 浏览量
     */
    @ApiModelProperty("浏览量")
    private Integer browse;
    /**
     * 商品二维码地址(用户小程序海报)
     */
    @NotBlank(message = "[商品二维码地址(用户小程序海报)]不能为空")
    @Size(max = 64, message = "编码长度不能超过64")
    @ApiModelProperty("商品二维码地址(用户小程序海报)")
    @Length(max = 64, message = "编码长度不能超过64")
    private String codePath;
    /**
     * 淘宝京东1688类型
     */
    @Size(max = 255, message = "编码长度不能超过255")
    @ApiModelProperty("淘宝京东1688类型")
    @Length(max = 255, message = "编码长度不能超过255")
    private String soureLink;
    /**
     * 主图视频链接
     */
    @NotBlank(message = "[主图视频链接]不能为空")
    @Size(max = 200, message = "编码长度不能超过200")
    @ApiModelProperty("主图视频链接")
    @Length(max = 200, message = "编码长度不能超过200")
    private String videoLink;
    /**
     * 运费模板ID
     */
    @NotNull(message = "[运费模板ID]不能为空")
    @ApiModelProperty("运费模板ID")
    private Integer tempId;
    /**
     * 规格 0单 1多
     */
    @NotNull(message = "[规格 0单 1多]不能为空")
    @ApiModelProperty("规格 0单 1多")
    private Boolean specType;
    /**
     * 活动显示排序0=默认, 1=秒杀，2=砍价，3=拼团
     */
    @NotBlank(message = "[活动显示排序0=默认, 1=秒杀，2=砍价，3=拼团]不能为空")
    @Size(max = 255, message = "编码长度不能超过255")
    @ApiModelProperty("活动显示排序0=默认, 1=秒杀，2=砍价，3=拼团")
    @Length(max = 255, message = "编码长度不能超过255")
    private String activity;
}
